package com.itheima.exception;

import com.itheima.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@Slf4j
@RestControllerAdvice
public class GlobalException {
    //处理异常
    /**
     * 编写一个方法，用于处理项目中出现的任何异常
     * 处理的流程是：
     *  如果mapper里有异常，会抛给Service
     *  service里如果有异常，就抛给controller
     *  controller里如果有异常，就抛给SpringBoot Web框架
     *  框架会将异常信息交给异常处理器：调用这个方法，将异常作为实参传递进来
     */
    @ExceptionHandler
    public Result handle(Exception e){//方法形参中指定能够处理的异常类型
         e.printStackTrace();//打印堆栈中的异常信息
        //捕获到异常之后，响应一个标准的Result
        return Result.error("系统正在维护，请稍后再试");
    }
    @ExceptionHandler
    public Result handleBusinessException(BusinessException e){
        log.error("系统异常", e);
        return Result.error(e.getMessage());
    }

}

